# locust777

////----------------------------------------------------------------------------------------------------------------------------------
////
////数据结构体
////
//
//#include<stdio.h>
//#include<windows.h>
//int main()
//{
//	struct Student
//	{
//		int num;
//		char name[20];
//		float score;
//
//	}student1,student2;  //结构体变量
//	
//	printf("请输入两个学生的信息：学号，姓名，成绩\n");  //输入num不能超过int的大小
//	scanf("%d %s %f",&student1.num,&student1.name,&student1.score);
//	scanf("%d %s %f",&student2.num,&student2.name,&student2.score);
//	printf("The higher score is;\n");
//	if(student1.score>student2.score)
//		printf("%d %s %6.2f\n",student1.num,student1.name,student1.score);
//	else if(student1.score<student2.score)
//		printf("%d %s %6.2f\n",student2.num,student2.name,student2.score);
//	else
//	{
//		printf("%d %s %6.2f\n",student1.num,student1.name,student1.score);
//		printf("%d %s %6.2f\n",student2.num,student2.name,student2.score);
//		
//	}
//
//
//system("pause");
//return 0;
//
//}




////9.3 三个候选人投票，后统计票数
//
//#include<stdio.h>
//#include<windows.h>
//
//struct Person
//{
//	char name[20];
//	int count;
//}leader[3] = {"Li",0,"Zhang",0,"Sun",0};
//
//int main()
//{
//	int i,j;
//	char leader_name[20];
//	for(i=1;i<=10;i++)
//	{
//		scanf("%s",&leader_name);
//		for(j=0;j<3;j++)
//			if(strcmp(leader_name,leader[j].name)== 0)
//				leader[j].count++;
//	}
//	printf("\nResult:\n");
//	for(i=0;i<3;i++)
//		printf("%5s:%d\n",leader[i].name,leader[i].count);
//
//
//
//system("pasue");
//return 0;
//}



//
////9.4 有n个同学，按成绩从大到小，利用结构体数组输出
//
//#include<stdio.h>
//#include<windows.h>
//
//struct Student  //设置一个结构体
//{
//	int num;
//	char name[20];
//	float score;
//};
//
//
//int main()
//{
//	struct Student stu[5] = {{10011,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Sun",100}}; //初始化结构体数组
//	struct Student temp;   //设置一个结构进行数据交换
//	const int n = 5;
//	int i,j,k;
//	printf("The order is:\n");
//	for(i=0;i<n-1;i++)
//	{
//		k=i;                   
//		for(j=i+1;j<n;j++)    //此for循环将最大的j放入k中
//			if(stu[j].score>stu[i].score)
//				k=j;    
//		temp = stu[k];   //最初i= 0；将最大的放在stu[i];
//		stu[k] = stu[i];
//		stu[i] = temp;
//	}   //结束后，大的放前面，之后大的放后面
//
//	for(i=0;i<n;i++)
//	{
//		printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);  //将结构体交换后的，输出
//		printf("\n");
//	
//	}
//
//
//system("pasue");
//return 0;
//}




//  冒气泡排序法


#include<stdio.h>
#include<windows.h>

struct Student  //设置一个结构体
{
	int num;
	char name[20];
	float score;
};


int main()
{
	struct Student stu[5] = {{10011,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Sun",100}}; //初始化结构体数组
	struct Student temp;   //设置一个结构进行数据交换
	const int n = 5;
	int i = 0,j = 0;
	printf("The order is:\n");
	for(i = 0;i<n;i++) //运行四次
	{
		for(i=0;i<n-j;)
		{
			i = j + 1;  //j=0;i=1
			if(stu[i].score<stu[j].score);
			{
				temp = stu[i];
				stu[i] = stu[j];
				stu[j] = temp;
			}
			j++;
		}
		j++;
	}




	for(i=0;i<n;i++)
	{
		printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);  //将结构体交换后的，输出
		printf("\n");
	
	}


system("pasue");
return 0;
}
